home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / STRINGS.SWG / 0028_Adding Strings together.pas < prev    next >
Pascal/Delphi Source File  |  1993-08-27  |  727b  |  44 lines

  1. { KELD R. HANSEN }
  2.  
  3. PROCEDURE AddStr(VAR STR : OpenString ; CONST ADD : STRING); ASSEMBLER;
  4. ASM
  5.   PUSH    DS
  6.   LDS     SI,ADD
  7.   LES     DI,STR
  8.   CLD
  9.   XOR     BH,BH
  10.   MOV     BL,ES:[DI]
  11.   LODSB
  12.   MOV     AH,BYTE PTR STR-2
  13.   ADD     AL,BL
  14.   JC      @OVF
  15.   CMP     AL,AH
  16.   JBE     @OK
  17.  @OVF:
  18.   MOV     AL,AH
  19.  @OK:
  20.   STOSB
  21.   XOR     CH,CH
  22.   MOV     CL,AL
  23.   SUB     CL,BL
  24.   ADD     DI,BX
  25.   REP     MOVSB
  26.   POP     DS
  27. END;
  28.  
  29. PROCEDURE AddChar(VAR STR : OpenString ; C : CHAR); ASSEMBLER;
  30. ASM
  31.   LES     DI,STR
  32.   XOR     AH,AH
  33.   MOV     AL,ES:[DI]
  34.   CMP     AX,WORD PTR STR-2
  35.   JAE     @OUT
  36.   INC     AL
  37.   JZ      @OUT
  38.   MOV     ES:[DI],AL
  39.   ADD     DI,AX
  40.   MOV     AL,C
  41.   STOSB
  42.  @OUT:
  43. END;
  44.